﻿package mortal.game.resource.tableConfig
{
    import Message.DB.Tables.*;
    import com.gengine.resource.*;
    import mortal.game.view.common.*;

    public class EquipRefreshConfig extends Object
    {
        private var _list:Array;
        private static var _instance:EquipRefreshConfig;

        public function EquipRefreshConfig()
        {
            this._list = new Array();
            if (_instance != null)
            {
                throw new Error(" EquipRefreshConfig 单例 ");
            }
            this.init();
            return;
        }// end function

        public function init() : void
        {
            var _loc_1:* = ConfigManager.instance.getJSONByFileName("t_equip_refresh.json");
            this.write(_loc_1);
            return;
        }// end function

        private function write(param1:Object) : void
        {
            var _loc_2:TEquipRefresh = null;
            var _loc_3:Object = null;
            for each (_loc_3 in param1)
            {
                
                _loc_2 = new TEquipRefresh();
                ClassTypesUtil.copyValue(_loc_2, _loc_3);
                this._list.push(_loc_2);
            }
            return;
        }// end function

        public function getInfoByAttr(param1:String)
        {
            return;
        }// end function

        public function getBaseValueByType(param1:int) : int
        {
            var _loc_2:TEquipRefresh = null;
            for each (_loc_2 in this._list)
            {
                
                if (_loc_2.fightAttrType == param1)
                {
                    return _loc_2.fightAttrEffect;
                }
            }
            return 0;
        }// end function

        public function getTimesByStarLevel(param1:int) : int
        {
            var _loc_2:TEquipRefresh = null;
            for each (_loc_2 in this._list)
            {
                
                if (_loc_2.starLevel == param1)
                {
                    return _loc_2.starEffectTimes;
                }
            }
            return 0;
        }// end function

        public function getAttrValue(param1:int, param2:String) : int
        {
            var _loc_3:TEquipRefresh = null;
            for each (_loc_3 in this._list)
            {
                
                if (_loc_3.starLevel == param1)
                {
                    return _loc_3[param2];
                }
            }
            return 0;
        }// end function

        public function getMaxStarLevel(param1:int) : int
        {
            var _loc_2:TEquipRefresh = null;
            for each (_loc_2 in this._list)
            {
                
                if (_loc_2.equipLevel == param1)
                {
                    return _loc_2.equipMaxStarLevel;
                }
            }
            return 0;
        }// end function

        public function getConsumeMoney(param1:int) : int
        {
            var _loc_2:TEquipRefresh = null;
            for each (_loc_2 in this._list)
            {
                
                if (_loc_2.equipLevel == param1)
                {
                    return _loc_2.equipRefreshConsumeMoney;
                }
            }
            return 0;
        }// end function

        public function getConsumeItem(param1:int) : int
        {
            var _loc_2:TEquipRefresh = null;
            for each (_loc_2 in this._list)
            {
                
                if (_loc_2.equipLevel == param1)
                {
                    return _loc_2.equipRefreshItemcode;
                }
            }
            return 0;
        }// end function

        public function getMaxAttrNum(param1:int) : int
        {
            var _loc_3:TEquipRefresh = null;
            var _loc_2:* = new Array();
            for each (_loc_3 in this._list)
            {
                
                if (_loc_3.recordType == "RefreshNumRelate" && _loc_3.equipLevel == param1)
                {
                    _loc_2.push(_loc_3);
                }
            }
            _loc_2.sort(this.sortByNum);
            if (_loc_2.length > 0)
            {
                return (_loc_2[0] as TEquipRefresh).refreshNum;
            }
            return 0;
        }// end function

        private function sortByNum(param1:TEquipRefresh, param2:TEquipRefresh) : int
        {
            if (param1.refreshNum > param2.refreshNum)
            {
                return -1;
            }
            if (param1.refreshNum < param2.refreshNum)
            {
                return 1;
            }
            return 0;
        }// end function

        public static function get instance() : EquipRefreshConfig
        {
            if (_instance == null)
            {
                _instance = new EquipRefreshConfig;
            }
            return _instance;
        }// end function

    }
}
